package com.mephi.oshs.model.style;

import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;

/**
 * Интерфейс описывает стиль для узлов дерева ОШС,
 * которые будут содержать в себе элемент дерева ОШС.
 */
public interface IStyle {

    /**
     * Следует ли использовать настройки стиля по-умолчанию.
     *
     * @return False - если нужно использовать предоставляемые настройки,
     *         иначе следует использовать предустановленные настройки стиля.
     */
    public boolean useDefaults();

    /**
     * Цвет переднего плана узла дерева ОШС.
     *
     * @return Цвет.
     */
    public Color getForegroundColor();

    /**
     * Цвет фона узла дерева ОШС.
     *
     * @return Цвет.
     */
    public Color getBackgroundColor();

    /**
     * Иконка для узла дерева ОШС.
     *
     * @return Иконка.
     */
    public Image getImage();

    /**
     * Шрифт узла дерева ОШС.
     *
     * @return Шрифт.
     */
    public Font getFont();
}
